#ifndef FAIRPLAY_HANDLER_H
#define FAIRPLAY_HANDLER_H

#include "media/drm_interface.h"
#include <cstdint>
#include <string>

namespace OHOS {
namespace Media {
namespace DRM {

class FairPlayHandler {
public:
    FairPlayHandler() = default;
    ~FairPlayHandler() = default;

    // 初始化DRM处理器
    int32_t Init(int32_t fileHandle, int64_t offset, size_t size);
    // 解密数据
    int32_t Decrypt(const uint8_t* encryptedData, size_t encryptedSize,
                   uint8_t* decryptedData, size_t decryptedSize);
    // 释放资源
    int32_t Release();

private:
    // 解析DRM元数据
    bool ParseDrmMetadata(int32_t fileHandle, int64_t offset, size_t size);
    // 获取解密密钥
    bool AcquireDecryptionKey();

    std::string keyId_;         // 密钥ID
    std::string licenseUrl_;    // 许可证URL
    uint8_t* decryptionKey_ = nullptr; // 解密密钥
    bool isInitialized_ = false;      // 初始化状态
};

} // namespace DRM
} // namespace Media
} // namespace OHOS

#endif // FAIRPLAY_HANDLER_H